Ordering Optimisations for Concurrent Logic Programs
نویسنده
چکیده
Ordering optimisations are optimisations that can be applied to a concurrent logic program when the atoms of a clause are known to be ordered. In this paper ordering optimisations are reviewed, reformulated and refined. The paper explains how ordering optimisations can be realised in terms of abstract interpretation and shows that by, building on schedule analysis, simple, efficient and accurate forms of abstract interpretation can achieved. The paper outlines how to: identify instances of unification which can be simplified or removed; distinguish repeated synchronisation instructions; indicate which redundant checks can be removed when producers are ordered before consumers in the same thread; identify which variables can be accessed without dereferencing; indicate where variable initialisation and unification can be simplified; and show which variables can be allocated to an environment. Some safety checks can also be removed by using mode information.
منابع مشابه
Ordering Optimizations for Concurrent Logic Programs
Ordering optimisations are optimisations that can be applied to a concurrent logic program when the atoms of a clause are known to be ordered. In this paper ordering optimisations are reviewed, reformulated and refined. The paper explains how ordering optimisations can be realised in terms of abstract interpretation and shows that by, building on schedule analysis, simple, efficient and accurat...
متن کاملSMT Solving for the Theory of Ordering Constraints
Constraint solving and satisfiability checking play an important role in various tasks such as formal verification, software analysis and testing. In this paper, we identify a particular kind of constraints called ordering constraints, and study the problem of deciding satisfiability modulo such constraints. The theory of ordering constraints can be regarded as a special case of difference logi...
متن کاملVerifying Fence Elimination Optimisations
We consider simple compiler optimisations for removing redundant memory fences in programs running on top of the x86-TSO relaxed memory model. While the optimisations are performed using standard thread-local control flow analyses, their correctness is subtle and relies on a non-standard global simulation argument. The implementation and the proof of correctness are programmed in Coq as part of...
متن کاملSequentialization of Parallel Logic Programs with Mode Analysis
The family of concurrent logic programming languages based on Flat-Guarded Horn Clauses has proven to be a great asset to programmers seeking to quickly construct ee-cient programs for highly parallel shared-memory machines. If these languages are to be implemented eeciently for other architectures, however, language-speciic compile-time analysis techniques must be improved. This work describes...
متن کاملSlicing Concurrent Logic Programs
Program slicing has been widely studied for imperative programs, but for logic programs it is just starting. In this paper we address the problem of slicing concurrent logic programs. To solve this problem, we propose three types of primary program dependences between arguments in concurrent logic programs, named the sharing dependence, communication dependence and uni cation dependence. We als...
متن کامل